package com.suning.sawp.member.dao;

import java.util.Date;
import java.util.List;

import com.suning.sawp.member.vo.MemberExtensionCateVo;
import com.suning.sawp.member.vo.MemberExtensionClientVo;
import com.suning.sawp.member.vo.MemberExtensionEmpVo;
import com.suning.sawp.member.vo.MemberExtensionStatisVo;

/**
 * 
 * 会员拓展dao<br>
 *
 * @author 14060886 祝翔龙
 */
public interface StoreExtensionDao {

    /**
     * 
     * 功能描述: 查询会员拓展统计数据(门店)<br>
     *
     * @param activityId 活动id(外拓类型时为空)
     * @param storeCode 门店编码
     * @param dateType 门店外拓：0今日 1活动期间; 询价未购：0今日 1昨日 2本月
     * @param source 1外拓 2询价未购
     * @return
     */
    public MemberExtensionStatisVo selectExpandStatisInfoByStore(String activityId, String storeCode, String dateType, Short source);

    /**
     * 
     * 功能描述: 查询会员拓展品类数据<br>
     *
     * @param activityId 活动id(外拓类型时为空)
     * @param storeCode 门店编码
     * @param dateType 门店外拓：0今日 1活动期间; 询价未购：0今日 1昨日 2本月
     * @param source 1外拓 2询价未购
     * @return
     */
    public List<MemberExtensionCateVo> selectExpandCateInfoByStore(String activityId, String storeCode, String dateType, Short source);

    /**
     * 
     * 功能描述: 查询总目标外拓人数(门店/品类)<br>
     *
     * @param activityId 活动id
     * @param storeCode 门店编码
     * @param cateCode 品类编码
     * @return
     */
    public Integer selectTargetPeopleByStore(String activityId, String storeCode, String cateCode);

    /**
     * 
     * 功能描述: 查询会员拓展统计数据(品类)<br>
     *
     * @param activityId 活动id(外拓类型时为空)
     * @param storeCode 门店编码
     * @param cateCode 品类编码
     * @param dateType 门店外拓：0今日 1活动期间; 询价未购：0今日 1昨日 2本月
     * @param source 1外拓 2询价未购
     * @return
     */
    public MemberExtensionStatisVo selectExpandStatisInfoByCate(String activityId, String storeCode, String cateCode, String dateType, Short source);

    /**
     * 
     * 功能描述: 查询会员拓展店员数据(品类)<br>
     *
     * @param activityId 活动id(外拓类型时为空)
     * @param storeCode 门店编码
     * @param cateCode 品类编码
     * @param dateType 门店外拓：0今日 1活动期间; 询价未购：0今日 1昨日 2本月
     * @param source 1外拓 2询价未购
     * @return
     */
    public List<MemberExtensionEmpVo> selectExpandEmpInfoByCate(String activityId, String storeCode, String cateCode, String dateType, Short source);

    /**
     * 
     * 功能描述: 查询门店外拓统计数据(地点)<br>
     *
     * @param activityId 活动id
     * @param storeCode 门店编码
     * @param expandId 外拓任务id
     * @param source 1外拓 2询价未购
     * @return
     */
    public MemberExtensionStatisVo selectExpandStatisInfoByLoc(String activityId, String storeCode, String expandId, Short source);

    /**
     * 
     * 功能描述: 查询门店外拓店员数据(地点)<br>
     *
     * @param activityId 活动id
     * @param storeCode 门店编码
     * @param expandId 外拓任务id
     * @param dateType 门店外拓：0今日 1活动期间; 询价未购：0今日 1昨日 2本月
     * @param source 1外拓 2询价未购
     * @return
     */
    public List<MemberExtensionEmpVo> selectExpandEmpInfoByLoc(String activityId, String storeCode, String expandId, String dateType, Short source);

    /**
     * 
     * 功能描述: 查询总目标外拓人数(地点)<br>
     *
     * @param expandId 外拓任务id
     * @return
     */
    public Integer selectTargetPeopleByLoc(String expandId);

    /**
     * 
     * 功能描述: 查询会员拓展统计数据(店员)<br>
     *
     * @param activityId 活动id(外拓类型时为空)
     * @param storeCode 门店编码
     * @param employeeId 店员工号
     * @param expandId 外拓任务id(询价未购类型时为空)
     * @param source 1外拓 2询价未购
     * @param dateType 门店外拓：0今日 1活动期间; 询价未购：0今日 1昨日 2本月
     * @return
     */
    public MemberExtensionStatisVo selectExpandStatisInfoByEmp(String activityId, String storeCode, String employeeId,
            String expandId, Short source, String dateType);

    /**
     * 
     * 功能描述: 查询会员拓展客户数据<br>
     *
     * @param activityId 活动id(外拓类型时为空)
     * @param storeCode 门店编码
     * @param employeeId 店员工号
     * @param expandId 外拓任务id(询价未购类型时为空)
     * @param source 1外拓 2询价未购
     * @param dateType 门店外拓：0今日 1活动期间; 询价未购：0今日 1昨日 2本月
     *  @param start 
     *   @param end
     * @return
     */
    public List<MemberExtensionClientVo> selectExpandClientInfoByEmp(String activityId, String storeCode,
            String employeeId, String expandId, Short source, String dateType, Integer start, Integer end);
    
    /**
     * 
     * 功能描述: 查询总目标外拓人数(店员/地点)<br>
     *
     * @param activityId 活动id
     * @param storeCode 门店编码
     * @param employeeId 店员工号
     * @param expandId 外拓任务id
     * @return
     */
    public Integer selectTargetPeopleByEmp(String activityId, String storeCode, String employeeId,
            String expandId);

    /**
     * 
     * 功能描述: 店员查询询价未购拓展客户数据<br>
     *
     * @param storeCode 门店编码
     * @param employeeId 店员工号
     * @param startDate 开始日期
     * @param endDate 结束日期
     * @param start
     * @param end
     * @return
     */
    public List<MemberExtensionClientVo> selectInquiryDetailByEmp4DY(String storeCode, String employeeId,
            Date startDate, Date endDate, Integer start, Integer end);

}
